package portal.klanmichalakow.org;

import static org.testng.AssertJUnit.assertEquals;

import org.openqa.selenium.By;
import org.openqa.selenium.Dimension;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;

public class Portal {

	public static void main(String[] args) {
		WebDriver driver = new FirefoxDriver();
		fullSize(driver);

	}

	protected static void fullSize(WebDriver driver) {
		driver.manage().window().setSize(new Dimension(1366, 768));

	}

	protected static void loginToPortal(WebDriver driver) {
		driver.get("http://klanmichalakow.org");
		driver.getTitle();
		System.out.println("Page title is: " + driver.getTitle());
		driver.getCurrentUrl();
		System.out.println("Current Url : " + driver.getCurrentUrl());
		driver.findElement(By.xpath(".//input[@id='modlgn-username']"))
				.sendKeys("karol");
		driver.findElement(By.xpath(".//input[@id='modlgn-passwd']")).sendKeys(
				"sklejka");
		driver.findElement(By.xpath(".//input[contains(@value, 'Zaloguj')]"))
				.click();

	}

	protected static void logoutFromPortal(WebDriver driver) {
		driver.findElement(By.xpath(".//input[contains(@value, 'Wyloguj')]"))
				.click();

	}

	protected static void close(WebDriver driver) {
		driver.quit();
	}

	protected static void scrollDown(WebDriver driver) {
		JavascriptExecutor jse = (JavascriptExecutor) driver;
		for (int i = 0; i < 7; i++) {
			jse.executeScript("window.scrollBy(0,250)", "");
			try {
				Thread.sleep(500);
			} catch (InterruptedException e) {
				e.printStackTrace();
			}

		}
	}

	protected static void wait5sec(WebDriver driver) {
		try {
			Thread.sleep(5000);
		} catch (InterruptedException e) {
			e.printStackTrace();
		}
	}

	protected static void verifyRegUser(WebDriver driver) {
		String userReg = driver.findElement(
				By.xpath(".//div[contains(text(), 'Witaj Karol')]")).getText();
		assertEquals("Witaj Karol,", userReg);
		if (userReg.equals("Witaj Karol,")) {
			System.out.println("Jestes zarejestrowanym uzytkownikiem");
		} else {
			System.out.println("Niejestes zarejestrowanym uzytkownikiem");
		}
	}

	protected static void regUserViewNewArticle(WebDriver driver) {
		String userView = driver.findElement(
				By.xpath(".//a[contains(text(), 'napisz artykul')]")).getText();
		assertEquals("napisz artykul", userView);
		if (userView.equals("napisz artykul")) {
			System.out.println("Widzisz link -> Napisz Artykul ");
		} else {
			System.out.println("Niejestes zarejestrowanym uzytkownikiem");
		}
	}

	protected static void userViewTopMenuMainPage(WebDriver driver) {
		String userView = driver.findElement(
				By.xpath(".//a[contains(text(), 'Strona główna')]")).getText();
		assertEquals("STRONA GŁÓWNA", userView);
		if (userView.equals("STRONA GŁÓWNA")) {
			System.out.println("Widzisz link -> STRONA GŁÓWNA ");
		} else {
			System.out.println("Link jest niewidoczny");
		}
	}

	protected static void userViewTopMenuForum(WebDriver driver) {
		String userView = driver.findElement(
				By.xpath(".//a[contains(text(), 'Forum')]")).getText();
		assertEquals("FORUM", userView);
		if (userView.equals("FORUM")) {
			System.out.println("Widzisz link -> FORUM ");
		} else {
			System.out.println("Link jest niewidoczny");
		}
	}

	protected static void userViewTopMenuGaleria(WebDriver driver) {
		String userView = driver.findElement(
				By.xpath(".//a[contains(text(), 'Galeria')]")).getText();
		assertEquals("GALERIA", userView);
		if (userView.equals("GALERIA")) {
			System.out.println("Widzisz link -> GALERIA ");
		} else {
			System.out.println("Link jest niewidoczny");
		}
	}

	protected static void userViewTopMenuHistory(WebDriver driver) {
		String userView = driver.findElement(
				By.xpath(".//a[contains(text(), 'Historia Michalaków')]"))
				.getText();
		assertEquals("HISTORIA MICHALAKÓW", userView);
		if (userView.equals("HISTORIA MICHALAKÓW")) {
			System.out.println("Widzisz link -> HISTORIA MICHALAKÓW ");
		} else {
			System.out.println("Link jest niewidoczny");
		}
	}

	protected static void userViewTopMenuCompetition(WebDriver driver) {
		String userView = driver.findElement(
				By.xpath(".//a[contains(text(), 'Konkursy')]")).getText();
		assertEquals("KONKURSY", userView);
		if (userView.equals("KONKURSY")) {
			System.out.println("Widzisz link -> KONKURSY ");
		} else {
			System.out.println("Link jest niewidoczny");
		}
	}

	protected static void userViewTopMenuGuestBook(WebDriver driver) {
		String userView = driver.findElement(
				By.xpath(".//a[contains(text(), 'Księga gości')]")).getText();
		assertEquals("KSIĘGA GOŚCI", userView);
		if (userView.equals("KSIĘGA GOŚCI")) {
			System.out.println("Widzisz link -> KSIĘGA GOŚCI ");
		} else {
			System.out.println("Link jest niewidoczny");
		}
	}

	protected static void userViewModuleMainMenu(WebDriver driver) {
		String userView = driver.findElement(
				By.xpath(".//span[contains(text(), 'Main Menu')]")).getText();
		assertEquals("Main Menu", userView);
		if (userView.equals("Main Menu")) {
			System.out.println("Widzisz modul -> Main Menu ");
		} else {
			System.out.println("Modul jest niewidoczny");
		}
	}

	protected static void userViewModuleOnlineGuests(WebDriver driver) {
		String userView = driver.findElement(
				By.xpath(".//span[contains(text(), 'na stronie gościmy')]"))
				.getText();
		assertEquals("na stronie gościmy", userView);
		if (userView.equals("na stronie gościmy")) {
			System.out.println("Widzisz modul -> na stronie gościmy ");
		} else {
			System.out.println("Modul jest niewidoczny");
		}
	}

	protected static void userViewModuleComeVisitAsAgain(WebDriver driver) {
		String userView = driver.findElement(
				By.xpath(".//span[contains(text(), 'odwiedź nas :)')]"))
				.getText();
		assertEquals("odwiedź nas :)", userView);
		if (userView.equals("odwiedź nas :)")) {
			System.out.println("Widzisz modul -> odwiedź nas :) ");
		} else {
			System.out.println("Modul jest niewidoczny");
		}
	}

	protected static void userViewModuleLogin(WebDriver driver) {
		String userView = driver.findElement(
				By.xpath(".//span[contains(text(), 'zaloguj sie')]")).getText();
		assertEquals("zaloguj sie", userView);
		if (userView.equals("zaloguj sie")) {
			System.out.println("Widzisz modul -> zaloguj sie ");
		} else {
			System.out.println("Modul jest niewidoczny");
		}
	}

	protected static void userViewModuleMostRead(WebDriver driver) {
		String userView = driver.findElement(
				By.xpath(".//span[contains(text(), 'najczęsciej czytane')]"))
				.getText();
		assertEquals("najczęsciej czytane", userView);
		if (userView.equals("najczęsciej czytane")) {
			System.out.println("Widzisz modul -> najczęsciej czytane ");
		} else {
			System.out.println("Modul jest niewidoczny");
		}
	}

	protected static void clickHistoryButton(WebDriver driver) {
		driver.findElement(
				By.xpath(".//a[contains(text(), 'Historia Michalaków')]"))
				.click();

	}

	protected static void clickGuestBookButton(WebDriver driver) {
		driver.findElement(By.xpath(".//a[contains(text(), 'Księga gości')]"))
				.click();

	}

	protected static void veryficationHistoryContent(WebDriver driver) {
		String userView = driver.findElement(
				By.xpath(".//a[contains(text(), 'Historia Michalaków')]"))
				.getText();
		assertEquals("HISTORIA MICHALAKÓW", userView);
		if (userView.equals("HISTORIA MICHALAKÓW")) {
			System.out
					.println("Widzisz zawartosc artykulu: Zarys historyczny Klanu Michalaków ");
		} else {
			System.out.println("Modul jest niewidoczny");
		}
	}

	protected static void veryficationGuestBookContent(WebDriver driver) {
		String userView = driver
				.findElement(
						By.xpath(".//p[contains(text(), 'Tutaj możesz umieścić swoja opinie na temat strony.')]"))
				.getText();
		assertEquals("Tutaj możesz umieścić swoja opinie na temat strony.",
				userView);
		if (userView
				.equals("Tutaj możesz umieścić swoja opinie na temat strony.")) {
			System.out.println("Widzisz zawartosc ksiegi gosci ");
		} else {
			System.out.println("Modul jest niewidoczny");
		}
	}

}
